#include "Mensajes.h"
#include "ProcesoPrincipal.h"

std::list<MensajeListaJugadores> MensajeListaJugadores::generarMensajes(long origen, int destino, ProcesoPrincipal *p){
	std::list<MensajeListaJugadores> lista;

	std::map<int, Jugador>::const_iterator it = p->jugadores.begin();
	MensajeListaJugadores m;
	m.setFuente(origen);
			
	for(;it != p->jugadores.end(); it++){
		m.contenido[0] = (char)1;
		int id = (*it).first;
		if(id == destino)
			continue;
		char estado = p->juegos.find((*it).first)!=p->juegos.end();
		std::string nombre =(*it).second.getNombre();

		m.setContenido(nombre.c_str(), 1);
		m.setContenido((char*)&id, 1+nombre.size()+1);
		m.setContenido((char*)&estado, 1+nombre.size()+1+sizeof(id));

		lista.push_back(m);
	}

	m.setTipo(MENSAJE_LISTA_JUGADORES_FIN);
	m.contenido[0]=0;
	lista.push_back(m);

	return lista;
}
